function init(address, chainId, rpcUrl) {
	if (window.ethereum) {
		return
	}
	if (window.UniAppJSBridge && trustwallet) {
		let config = {
			ethereum: {
				address: address,
				chainId: chainId,
				rpcUrl: rpcUrl
			}
		};
		let ethereum = new trustwallet.Provider(config)
		window.ethereum = Object.assign(ethereum, {
			isMetaMask: true,
			selectedAddress: config.ethereum.address,
			chainId: config.ethereum.chainId,
			networkVersion: '2.0',
			autoRefreshOnNetworkChange: true
		})
		window.ethereum.wallet = {}
		window.ethereum.wallet.address = config.ethereum.address;
		// 至此我们的ETH节点就构建完了

		// ETH和TRON还是有区别的，ETH大部分功能都是由包来完成的，只有和节点交互的部分需要处理
		// 而波场的则是全部由钱包对象来处理
		window.ethereum.postMessage = async function(handler, id, data) {
			uni.webView.postMessage({
				data: {
					handler: handler,
					id: id,
					data: data
				}
			});
		}
		uni.webView.postMessage({
			data: {
				handler: "hideloading"
			}
		});
	} else {
		setTimeout(function() {
			init(address, chainId, rpcUrl)
		}, 100)
	}
}